旋转正方形矩阵。

解答1[Java]:

核心思想

旋转的数字旋转之后,几个位置的数字之间是有规律的。

代码

class Solution {
    public void rotate(int[][] matrix) {
        int r1 = 0;
        int c1 = 0;
        int r2 = matrix.length - 1;
        int c2 = matrix[0].length - 1;
        while (r1 < r2) {
            rotateEdge(matrix, r1++, c1++, r2--, c2--);
        }
    }

    public static void rotateEdge(int[][] m, int r1, int c1, int r2, int c2) {
        int times = c2 - c1;
        int tmp = 0;
        for (int i = 0; i != times; i++) {
            tmp = m[r1][c1 + i];
            m[r1][c1 + i] = m[r2 - i][c1];
            m[r2 - i][c1] = m[r2][c2 - i];
            m[r2][c2 - i] = m[r1 + i][c2];
            m[r1 + i][c2] = tmp;
        }
    }
}

results matching ""

    No results matching ""